# -*- coding: utf-8 -*-
from django.contrib.admin.options import ModelAdmin
from django import forms
from django.contrib import admin
from slainte.models import *
from colaborador.models import *
from advertiser.models import *
from galerya.models import *
from models import Noticia
from tags import aplicar_tags, tags_para_objeto
class FormNoticia(forms.ModelForm):
    class Meta:
        model = Noticia

    tags = forms.CharField(max_length=30, required=False)
    def __init__(self, *args, **kwargs):
        super(FormNoticia, self).__init__(*args, **kwargs)
        if self.instance.id:
            self.initial['tags'] = tags_para_objeto(self.instance)
            
class AdminNoticia(ModelAdmin):
    form = FormNoticia
    def save_model(self, request, obj, form, change):
        super(AdminNoticia, self).save_model(request, obj, form, change)

        aplicar_tags(obj, form.cleaned_data['tags'])
    class Media:
        js = ('/js/tiny_mce/tiny_mce.js', '/js/textareas.js')
    fieldsets = [
        ('Informações Principais',{'fields':(('publicar','manchete'),('chamada','fonte'),('titulo','subtitulo'),('categoria'),'conteudo',('autor'),('tags'),)}),
        ('Informações de Mídias', {'fields':['imagemDestaque']})
    ]
    list_display = ('titulo','subtitulo','publicar','manchete')
    list_filter = ['publicar','datapublicacao']
    search_fields = ['titulo']
    #actions = [publicar, despublicar,manchete]
    save_on_top= True

def publicar(ModelAdmin, request, queryset):
    queryset.update(publicar = True)

def manchete(ModelAdmin, request, queryset):
    queryset.update(manchete = True )

def despublicar(ModelAdmin, request, queryset):
    queryset.update(publicar = False)

def ativo(ModelAdmin, request, queryset):
    queryset.update(ativo = True)

def desativar(ModelAdmin, request, queryset):
    queryset.update(ativo = False)


class PublicidadeAdmin(admin.ModelAdmin):
    fieldsets = [
        ('Informações Principais',{'fields':('publicar','nomeEmpresa',('nome','tipo'),'arquivo','link')}),
        ('Informações de Mídias', {'fields':['dataentrada','datasaida']})
    ]
    list_display = ('nome','tipo','nomeEmpresa','dataentrada','publicar')
    list_filter = ['tipo','dataentrada']
    search_fields = ['nome']
    actions = [publicar,despublicar]
    save_on_top= True

class NoticiaAdmin(admin.ModelAdmin):
    class Media:
        js = ('/js/tiny_mce/tiny_mce.js', '/js/textareas.js')
    fieldsets = [
        ('Informações Principais',{'fields':(('publicar','manchete'),('chamada','fonte'),('titulo','subtitulo'),('categoria'),'conteudo',('autor'),)}),
        ('Informações de Mídias', {'fields':['imagemDestaque']})
    ]
    list_display = ('titulo','subtitulo','publicar','manchete')
    list_filter = ['publicar','datapublicacao']
    search_fields = ['titulo']
    actions = [publicar, despublicar,manchete]
    save_on_top= True

class ColaboradorAdmin(admin.ModelAdmin):
    class Media:
        js = ('/js/tiny_mce/tiny_mce.js', '/js/textareas.js')
    fieldsets = [
        ('Informações Principais',{'fields':(('ativo'),('user'),('nome'),('email','telefone'),('foto'),)}),
        ('Informações de Mídias', {'fields':[('facebook','twitter','googleplus')]})
    ]
    list_display = ('nome','email','telefone','ativo')
    list_filter = ['ativo']
    search_fields = ['nome']
    actions = [ativo,desativar]
    save_on_top= True

class EmpresaAdmin(admin.ModelAdmin):
    fieldsets = [
        ('Informações Principais',{'fields':(('nome'),)}),
        ('Informações de Mídias', {'fields':['website']})
    ]
    list_display = ('nome','website')
    search_fields = ['nome']
    save_on_top= True

class CategoriaAdmin(admin.ModelAdmin):
    fieldsets = [
        ('Informações Principais',{'fields':(('nome'),)}),
        ('Informações de Adicionais', {'fields':['descricao']})
    ]
    list_display = ('nome',)
    search_fields = ['nome']
    save_on_top= True

class OpcaoAdmin(admin.TabularInline):
    model = Opcoes
    extra = 2

class EnqueteAdmin(admin.ModelAdmin):
    fieldsets = [
        (None, {'fields': ['questao']}),
        ('Data', {'fields': ['datapublicacao']})
    ]
    inlines = [OpcaoAdmin] #Inclue o admin Opçao em enquete
    list_display = ['questao', 'datapublicacao', 'publicadohoje']
    search_fields = ['questao']
    date_hierarchy = 'datapublicacao'
    list_filter = ['datapublicacao']

class ParceiroAdmin(admin.ModelAdmin):
    fieldsets = [
        ('Informações Principais',{'fields':(('publicar','destaque'),('empresa','subtitulo', 'conteudo'),('autor'),('imagemDestaque'))}),
        ('Informações de Mídias', {'fields':['googlemaps']})
    ]
    list_display = ('empresa','subtitulo')
    search_fields = ['empresa']
    save_on_top= True

class ImagemAdmin(admin.TabularInline):
    model = Imagem
    extra = 5

class GaleriaAdmin(admin.ModelAdmin):
    class Media:
        js = ('/js/tiny_mce/tiny_mce.js', '/js/textareas.js')
    fieldsets = [
        ('Principais', {'fields':(('publicar','manchete'),('titulo'),'subtitulo','chamada')}),
        ('Conteudo', {'fields':('conteudo','imagemDestaque','autor')}),
    ]
    inlines = [ImagemAdmin]

admin.site.register(Categoria,CategoriaAdmin)
admin.site.register(Noticia, AdminNoticia)
admin.site.register(Colaborador,ColaboradorAdmin)
admin.site.register(Publicidade, PublicidadeAdmin)
admin.site.register(Empresa,EmpresaAdmin)
admin.site.register(DrSami)
admin.site.register(GaleriaVideos)
admin.site.register(Enquete, EnqueteAdmin)
admin.site.register(Opcoes)
admin.site.register(Parceiro, ParceiroAdmin)
admin.site.register(Galeria, GaleriaAdmin)